NoSQL คืออะไร
NoSQL หรือ “non SQL”, “non relational” ,”not only SQL” หมายถึงการที่ database ใช้วิธีการสร้างฐานข้อมูลและการดึงข้อมูล ที่แต่งตากจากรูปแบบปกติ (SQL) ที่ออกมาในรูปแบบตารางเช่นเดียวกับ relational databases ซึ่งตั้งแต่ช่วง 1960 ที่ database ได้ถือกำเนิดขึ้นแต่ NoSQL ก็ยังไม่เป็นที่นิยม จนกระทั้งช่วงปี 2000 NoSQL เริ่มถูกเพิ่มเข้ามาใน Web2.0 ทำให้หลายบริษัทชั้นนำเช่น Facebook, Google และ Amazon.com ได้เริ่มนำมาใช้ ส่วนมากถูกนำมาใช้งานเกี่ยวกับ big data และ real-time web applications นั้นคือที่มาของ NoSQL คืออะไร
โดยปกติแล้ว NoSQL ง่ายต่อการขยายระบบ ที่เป็นรูปแบบ cluster (แนวนอน) ซึ่งนี้เป็นจุดด้อยหลักเลยของ relational database หลักการของ NoSQL คือใช้โครงสร้างของข้อมูลได้หลายรูปบบอาทิ key-value,wide column,graph หรือ document ซึ่งจะแตกต่างจากรูปแบบของ relational database ซึ่งบางครั้งทำให้ NoSQL มีความรวดเร็วมากกว่า
ประเภทของ NoSQL (ตัวอย่าง)
มีการจำแนกได้หลายรูปแบบสำหรับ NoSQL database โดยแต่ละรูปแบบได้มีการจัดกลุ่มและกลุ่มย่อยไว้ บางครั้งอาจจะมีบางชนิดคาบเกี่ยวกันบ้าง เช่น
- Column: Accumulo, Cassandra, Druid, HBase, Vertica, SAP HANA
- Document: Apache CouchDB, ArangoDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB
- Key-value: Aerospike, ArangoDB, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, InfinityDB, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB
- Graph: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog
- Multi-model: Alchemy Database, ArangoDB, CortexDB, Couchbase, FoundationDB, InfinityDB, MarkLogic, OrientDB
Key-value store
Document store
- Collections
- Tags
- Non-visible metadata
- Directory hierarchies
ถ้าเทียบกับ relational database จะเห็นว่า แต่ละ record สามารถมีจำนวน field ไม่เท่ากันได้ ซึ่งไม่เหมื่อนกับรูปแบบตาราง
Graph
รองรับ ACID
Aerospike, ArangoDB, CouchDB, c-treeACE, HyperDex, InfinityDB, LMDB, MarkLogic, OrientDB
Author: Suphakit Annoppornchai
Credit: https://saixiii.com,https://en.wikipedia.org
[…] และ ประมวลผลบน NoSQL database , Hadoop […]